﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Crosland.Automotriz.Facade.Interface;
using Crosland.Automotriz.Facade.Facade;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Logic.Linq;
using DevExpress.Web.ASPxGridView;
using DevExpress.Web.ASPxEditors;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing;
using System.ComponentModel;
using System.Configuration;

namespace Crosland.Automotriz.Web.Repuestos
{
    public partial class wFrmManualesPartesVehiculosCargaManual : System.Web.UI.Page
    {


        static List<listaModelo> lstaModelo;

        iFacadeSistema cls_carga_manual = new FacadeSistema();
        string idNegocio = ConfigurationManager.AppSettings["Negocio"];
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                   
                Panel img = (Panel)Master.FindControl("asp");
                img.Visible = false;

                lstaModelo = new List<listaModelo>();
                this.listarCboModelo();
                this.listarSubSistema();
                gvListarSubSistema.ClientVisible = true;
                this.listar_filtro_modelo();            
                if (gvSistemaModelo.FocusedRowIndex == -1)
                {
                    gvDetail.DataSource = null;
                    gvDetail.DataBind();
                }

            }


        }

     private    void listarCboModelo()
        {

            cboModelo.DataSource = cls_carga_manual.listar_filtro_modelo_s();
            cboModelo.ValueField = "ID_MODELO";
            cboModelo.TextField = "DES_MODELO";
            cboModelo.DataBind();
            cboModelo.SelectedIndex = 0;



        }

       private  void listar_filtro_modelo()
        {

            try
            {
                gvSistemaModelo.DataSource = cls_carga_manual.listar_filtro_modelo_sistema(Convert.ToInt32(cboModelo.SelectedItem.Value));
                gvSistemaModelo.DataBind();



            }
            catch(Exception ex)
            {

                lblMsjSql.Text = "Error del sistema: " + ex.Message;
                PopupMsjSql.ShowOnPageLoad = true;
            }





        }

        private struct listaModelo
        {
            public string id_sistema { get; set; }
            public string id_modelo { get; set; }
            public string des_modelo_ingles { get; set; }
            public string des_imagen { get; set; }
            public string foto { get; set; }

        }

      private  void listarSubSistema()
        {

            try
            {
                gvListarSubSistema.DataSource = cls_carga_manual.listar_Sub_Sistema();
                gvListarSubSistema.DataBind();

            }
            catch(Exception ex)
            {
                lblMsjSql.Text = ex.Message;
                PopupMsjSql.ShowOnPageLoad = true;
            }
        }

        protected void btnMostrar_Click(object sender, EventArgs e)
        {
            gvSistemaModelo.FocusedRowIndex = -1;
            gvDetail.DataSource = null;
            gvDetail.DataBind();
            this.listar_filtro_modelo();
            gvSistemaModelo.ClientVisible = true;

        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Repuestos/wFrmManualesPartesVehiculosSistemas.aspx?id=" + idNegocio);
        }

        protected void gvSistemaModelo_PageIndexChanged(object sender, EventArgs e)
        {
            this.listar_filtro_modelo();

        }


        private void listarDetalle()
        {
            try
            {
                int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));
                int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));
                gvDetail.DataSource = cls_carga_manual.listar_sistema_articulo(id_sistema, id_modelo);
                gvDetail.DataBind();
            }
            catch (Exception ex)
            {

                lblMsjSql.Text = "Error del sistema: " + ex.Message;
                PopupMsjSql.ShowOnPageLoad = true;
            }
            

        }

        protected void gvDetail_PageIndexChanged(object sender, EventArgs e)
        {
            this.listarDetalle();
        }


        private void ObtenerDatos()
        {
            try
            {
                int intIndex = gvDetail.FocusedRowIndex;
                if (intIndex == -1)
                {
                    lblMsjSql.Text = "Seleccione un registro a modificar";
                    PopupMsjSql.ShowOnPageLoad = true;
                    return;
                }

                txtDesModelo.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "DES_MODELO"));
                txtDesSistema.Text = Convert.ToString(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "DES_SISTEMA_INGLES"));
                txtDescripcionEsp.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "NOM_MATERIAL_ESP"));
                txtDescripcionIng.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "NOM_MATERIAL_INGLES"));
                txtNroitem.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "NRO_ITEM_MANUAL"));
                txtNroPagina.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "NRO_PAGINA"));
                txtCantidad.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "CANTIDAD"));
                txtRemarkIng.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "REMARK_ING"));
                txtRemarEsp.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "REMARK_ESP"));
                txtpopCodigo.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "COD_MATERIAL"));
                txtItemSistema.Text = Convert.ToString(gvDetail.GetRowValues(intIndex, "NRO_ITEM_SIST"));
         

                int ind_estado = Convert.ToInt32(gvDetail.GetRowValues(intIndex, "IND_ESTADO"));

                if (ind_estado == 1)
                {

                    chkEstado.Checked = true;

                }
                else
                {
                    chkEstado.Checked = false;
                }


                PopupEditar.ShowOnPageLoad = true;

            }
            catch (Exception ex)
            {
                lblMsjSql.Text = ex.Message;
                PopupMsjSql.ShowOnPageLoad = true;

            }
        }

        void ActualizaT_Sistema_Articulo()
        {

            try
            {
                PopupEditar.ShowOnPageLoad = false;
                int intIndex = gvDetail.FocusedRowIndex;
                string cod_material = txtpopCodigo.Text;

                clsT_Man_Sistema_ArticuloLogic logic = new clsT_Man_Sistema_ArticuloLogic();



                int id_modelo_S = Convert.ToInt32(gvDetail.GetRowValues(intIndex, "ID_MODELO"));
                int id_sistema = Convert.ToInt32(gvDetail.GetRowValues(intIndex, "ID_SISTEMA"));
                int intId_Man_Sistema_Articulo = Convert.ToInt32(gvDetail.GetRowValues(intIndex, "ID_MAN_SISTEMA_ARTICULO"));
                String codigoReal = cod_material;

                String CodigoValida = logic.VerificaCodigo(codigoReal);

                if (CodigoValida == null || CodigoValida == String.Empty)
                {

                  
                    lblMsjSql.Text = "El codigo No esta registrado en  Maestro de Articulos";
                    PopupMsjSql.ShowOnPageLoad = true;
                    return;
                }

                T_MAN_SISTEMA_ARTICULO t_man_sistema_articulo = new T_MAN_SISTEMA_ARTICULO();
                t_man_sistema_articulo.ID_MAN_SISTEMA_ARTICULO = intId_Man_Sistema_Articulo;
                t_man_sistema_articulo.ID_MODELO = id_modelo_S;
                t_man_sistema_articulo.ID_SISTEMA = id_sistema;
                t_man_sistema_articulo.COD_MATERIAL = cod_material;

                if (txtNroPagina.Text == string.Empty)
                {

                    t_man_sistema_articulo.NRO_PAGINA = 0;
                }
                else
                {
                    t_man_sistema_articulo.NRO_PAGINA = Convert.ToInt32(txtNroPagina.Text);
                }

                if (txtNroitem.Text == string.Empty)
                {
                    t_man_sistema_articulo.NRO_ITEM_MANUAL = null;

                }
                else
                {
                    t_man_sistema_articulo.NRO_ITEM_MANUAL = Convert.ToString(txtNroitem.Text);
                }

                if (txtItemSistema.Text == string.Empty)
                {

                    t_man_sistema_articulo.NRO_ITEM_SIST = null;
                }
                else
                {

                    t_man_sistema_articulo.NRO_ITEM_SIST = Convert.ToInt32(txtItemSistema.Text);

                }


                if (txtCantidad.Text == string.Empty)
                {
                    t_man_sistema_articulo.CANTIDAD = 0;

                }
                else
                {
                    t_man_sistema_articulo.CANTIDAD = Convert.ToInt32(txtCantidad.Text);
                }

                t_man_sistema_articulo.REMARK_ING = txtRemarkIng.Text;
                t_man_sistema_articulo.REMARK_ESP = txtRemarEsp.Text;
                if (chkEstado.Checked == true)
                {

                    t_man_sistema_articulo.IND_ESTADO = 1;
                }
                else
                {
                    t_man_sistema_articulo.IND_ESTADO = 0;

                }

              Boolean blvalida = cls_carga_manual.Modificar_t_man_sistema_articulos(t_man_sistema_articulo);

              if (blvalida) {

                  if (ActualizaT_Man_Articulo())
                  {

                      this.listarDetalle();
                      this.listar_filtro_modelo();
                  }
              

              }

            }
            catch (Exception ex)
            {
                lblMsjSql.Text = String.Empty;
                lblMsjSql.Text = ex.Message;
                PopupMsjSql.ShowOnPageLoad = true;

            }


        }


    private  bool ActualizaT_Man_Articulo()
        {
 
                string cod_material = Convert.ToString(gvDetail.GetRowValues(gvDetail.FocusedRowIndex, "COD_MATERIAL"));
                T_MAN_ARTICULO t_man_articulo = new T_MAN_ARTICULO();
                t_man_articulo.COD_MATERIAL = cod_material;
                t_man_articulo.IND_ESTADO = "0"; 
                if (txtDescripcionEsp.Text == string.Empty)
                {
                    t_man_articulo.NOM_MATERIAL_ESP = null;
                }
                else
                {
                    t_man_articulo.NOM_MATERIAL_ESP = txtDescripcionEsp.Text;
                }

                if (txtDescripcionIng.Text == string.Empty)
                {
                    txtDescripcionIng.Text = null;
                }
                else
                {
                    t_man_articulo.NOM_MATERIAL_INGLES = txtDescripcionIng.Text;
                }



               return cls_carga_manual.Modificar_Sistema_Articulos(t_man_articulo);
            
        }


        protected void btnPopAceptar_Click(object sender, EventArgs e)
        {

            this.ActualizaT_Sistema_Articulo();
            this.ActualizaT_Man_Articulo();
            this.listarDetalle();

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                gvListarSubSistema.DataSource = cls_carga_manual.listarSistema_filtro(txtBuscarSistema.Text);
                gvListarSubSistema.DataBind();
            }
            catch
            {


            }


        }

        protected void gvListarSubSistema_PageIndexChanged(object sender, EventArgs e)
        {
            this.listarSubSistema();
        }

        protected void gvListarSubSistema_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.listarSubSistema();
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {

            this.agregarSistema();



        }

        void agregarSistema()
        {

            bool verifacion = true;
            try
            {


                T_MAN_SISTEMA_MODELO t_man_sistema_modelo = new T_MAN_SISTEMA_MODELO();
                t_man_sistema_modelo.ID_MODELO = Convert.ToInt32(cboModelo.SelectedItem.Value);

                List<Object> selectedItem = gvListarSubSistema.GetSelectedFieldValues("ID_SISTEMA");
                foreach (object item in selectedItem)
                {

                    t_man_sistema_modelo.ID_SISTEMA = ((Int32)item);
                    verifacion = cls_carga_manual.Insertar_T_Man_Sistema_Modelo(t_man_sistema_modelo);

                    if (verifacion)
                    {

                        cls_carga_manual.ActualizaDescripcionImagenT_Man_Sistema_Modelo();


                        if (Globales.msjAplicacion == string.Empty)
                        {

                            lblMsjSql.Text = string.Empty;
                            lblMsjSql.Text = "Se agregó correctamente";
                            string scriptExeption = "ShowPopupMsjSql();";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

                        }
                        else
                        {

                            lblMsjSql.Text = string.Empty;
                            lblMsjSql.Text = "Se agregó parcialmente";
                            string scriptExeption = "ShowPopupMsjSql();";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

                        }



                    }
                    else if (verifacion == false)
                    {

                        lblMsjSql.Text = string.Empty;
                        lblMsjSql.Text = "El sistema y/o sistemas ya esta agregado";
                        string scriptExeption = "ShowPopupMsjSql();";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);
                    }
                    else
                    {

                        lblMsjSql.Text = string.Empty;
                        lblMsjSql.Text = "Ocurrió un error al agregar muchos sistemas por favor intentar nuevamente ";
                        string scriptExeption = "ShowPopupMsjSql();";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

                    }

                }
                this.listar_filtro_modelo();

            }
            catch
            {

                lblMsjSql.Text = string.Empty;
                lblMsjSql.Text = "Ocurrió error en la aplicación ";
                string scriptExeption = "ShowPopupMsjSql();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

            }

        }

        void EliminarSistema()
        {
            try
            {
                T_MAN_SISTEMA_MODELO t_man_sistema_modelo = new T_MAN_SISTEMA_MODELO();

                t_man_sistema_modelo.ID_MODELO = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));
                t_man_sistema_modelo.ID_SISTEMA = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));

                if (cls_carga_manual.Eliminar_T_Man_Sistema_Modelo(t_man_sistema_modelo))
                {

                    lblMsjSql.Text = "Se elimino correctamente!";
                    string scripterrores = "ShowPopupMsjSql();";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scripterrores, true);

                }
                else
                {


                    lblMsjSql.Text = string.Empty;
                    lblMsjSql.Text = "Error:datos relacionados en BD!";
                    string scripterrores = "ShowPopupMsjSql();";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scripterrores, true);

                }

            }
            catch
            {
                lblMsjSql.Text = string.Empty;
                lblMsjSql.Text = "Error en la aplicación ";
                string scripterrores = "ShowPopupMsjSql();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scripterrores, true);
            }


        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {

            this.EliminarSistema();
            this.listar_filtro_modelo();

        }

        protected void btnSubirImagen_Click(object sender, EventArgs e)
        {


            GuardarImg();
            ModificarSistema();
            listar_filtro_modelo();

        }


        void ModificarSistema()
        {
            try
            {

                int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));
                int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));
                T_MAN_SISTEMA_MODELO t_man_sistema_modelo = new T_MAN_SISTEMA_MODELO();
                t_man_sistema_modelo.ID_MODELO = id_modelo;
                t_man_sistema_modelo.ID_SISTEMA = id_sistema;
                t_man_sistema_modelo.DES_IMAGEN = "Sistema_" + id_modelo + "_" + id_sistema + UploaderAgregar.FileName.Substring(UploaderAgregar.FileName.Length - 4);

                cls_carga_manual.Modificar_T_Man_Sistema_Modelo(t_man_sistema_modelo);
            }
            catch
            {


            }


        }

        void GuardarImg()
        {


            try
            {
                if (UploaderAgregar.HasFile)
                {

                    string ext = UploaderAgregar.PostedFile.FileName;
                    ext = ext.Substring(ext.LastIndexOf(".") + 1).ToLower();
                    string[] formatos =
                      new string[] { "jpg", "jpeg", "bmp", "png", "gif" };
                    if (Array.IndexOf(formatos, ext) < 0)
                        lblMsj.Text = ("");

                    else
                    {

                        GuardarArchivo(UploaderAgregar.PostedFile);

                    }
                }
            }
            catch (Exception ex)
            {
                lblMsj.Text = (ex.Message);
            }

        }


        private void GuardarArchivo(HttpPostedFile file)
        {

            int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));
            int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));
            string ruta = Server.MapPath(ConfigurationManager.AppSettings["RutaFotoSistema"]);


            if (!Directory.Exists(ruta))
                Directory.CreateDirectory(ruta);

            string archivo = String.Format("{0}\\{1}", ruta, "Sistema_" + id_modelo + "_" + id_sistema + UploaderAgregar.FileName.Substring(UploaderAgregar.FileName.Length - 4));


            System.Drawing.Image img = RedimensionarImagen(file.InputStream);


            if (File.Exists(archivo))
            {

            }
            else
            {

                string ext = file.ContentType.Substring(
                  file.ContentType.LastIndexOf("/") + 1);
                ImageFormat format;
                switch (ext)
                {
                    case "gif":
                        format = ImageFormat.Gif;
                        break;
                    case "bmp":
                        format = ImageFormat.Bmp;
                        break;
                    case "png":
                        format = ImageFormat.Png;
                        break;
                    default:
                        format = ImageFormat.Jpeg;
                        break;
                }
                img.Save(archivo, format);
            }
        }

        private static System.Drawing.Image RedimensionarImagen(Stream stream)
        {

            System.Drawing.Image img = System.Drawing.Image.FromStream(stream);

            const int max = 700;

            int h = img.Height;
            int w = img.Width;
            int newH, newW;

            if (h > w && h > max)
            {

                newH = max;
                newW = (w * max) / h;
            }
            else if (w > h && w > max)
            {

                newW = max;
                newH = (h * max) / w;
            }
            else
            {
                newH = h;
                newW = w;
            }
            if (h != newH && w != newW)
            {

                Bitmap newImg = new Bitmap(img, newW, newH);
                Graphics g = Graphics.FromImage(newImg);
                g.InterpolationMode =
                  System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
                g.DrawImage(img, 0, 0, newImg.Width, newImg.Height);
                return newImg;
            }
            else
                return img;
        }

        protected void btnPopBuscarMo_Click(object sender, EventArgs e)
        {
            this.listarSistemaArticulo();
        }
        void listarSistemaArticulo()
        {
            try
            {
                gvBusquedaModelo.DataSource = cls_carga_manual.listar_T_Man_Articulos_Like(txtPopCodigoMo.Text, txtPopNomMateriaMo.Text);
                gvBusquedaModelo.DataBind();
            }
            catch
            { }

        }

        protected void gvBusquedaModelo_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.listarSistemaArticulo();
        }

        protected void gvBusquedaModelo_PageIndexChanged(object sender, EventArgs e)
        {
            this.listarSistemaArticulo();
        }

        protected void btnPopAceptarMo_Click(object sender, EventArgs e)
        {

            this.insertarT_man_sistema_Articulo();


        }

        void insertarT_man_sistema_Articulo()
        {

            try
            {

                int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));
                int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));


                T_MAN_SISTEMA_ARTICULO t_man_sistema_sistema_articulo = new T_MAN_SISTEMA_ARTICULO();

                List<object> selectedItem = gvBusquedaModelo.GetSelectedFieldValues("COD_MATERIAL");
                foreach (object item in selectedItem)
                {



                    t_man_sistema_sistema_articulo.COD_MATERIAL = (string)(item.ToString());
                    t_man_sistema_sistema_articulo.ID_SISTEMA = id_sistema;
                    t_man_sistema_sistema_articulo.ID_MODELO = id_modelo;
                    if (cls_carga_manual.Insertar_t_man_sistema_articulos(t_man_sistema_sistema_articulo))
                    {
                        if (cls_carga_manual.ActualizaEstadoArticulo(id_modelo, id_sistema, (string)(item.ToString())))
                        {
                            lblMsjSql.Text = string.Empty;
                            lblMsjSql.Text = "Se grabó correctamente !";
                            string scriptExeption = "ShowPopupMsjSql();";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);
                        }
                        else
                        {

                            lblMsjSql.Text = string.Empty;
                            lblMsjSql.Text = "Error:no se puede actualizar el estado!";
                            string scriptExeption = "ShowPopupMsjSql();";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);
                        }



                    }
                    else
                    {

                        lblMsjSql.Text = string.Empty;
                        lblMsjSql.Text = "El registro ya esta agregado";
                        string scriptExeption = "ShowPopupMsjSql();";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);


                    }




                }

                this.listarDetalle();


            }
            catch (Exception ex)
            {


                lblMsjSql.Text = string.Empty;
                lblMsjSql.Text = "Ocurrió un error en la aplicación " + ex.Message;
                string scriptExeption = "ShowPopupMsjSql();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);



            }








        }


        void eliminar_T_Man_Sistema_Articulo()
        {
            try
            {
                T_MAN_SISTEMA_ARTICULO t_man_sistema_articulo = new T_MAN_SISTEMA_ARTICULO();
                for (int i = 0; i < gvDetail.VisibleRowCount; i++)
                {
                    if (gvDetail.Selection.IsRowSelected(i))
                    {
                        t_man_sistema_articulo.ID_MAN_SISTEMA_ARTICULO = Convert.ToInt32(gvDetail.GetRowValues(i, "ID_MAN_SISTEMA_ARTICULO"));
                        t_man_sistema_articulo.COD_MATERIAL = Convert.ToString(gvDetail.GetRowValues(i, "COD_MATERIAL"));
                        t_man_sistema_articulo.ID_SISTEMA = Convert.ToInt32(gvDetail.GetRowValues(i, "ID_SISTEMA"));
                        t_man_sistema_articulo.ID_MODELO = Convert.ToInt32(gvDetail.GetRowValues(i, "ID_MODELO"));
                        cls_carga_manual.Eliminar_T_Man_Sistema_Ariticulo(t_man_sistema_articulo);
                    }
                }

                int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));
                int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));
                gvDetail.DataSource = cls_carga_manual.listar_sistema_articulo(id_sistema, id_modelo);
                gvDetail.DataBind();




            }
            catch
            {


            }



        }

        protected void gvDetail_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.listarDetalle();

        }

        protected void gvSistemaModelo_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.listar_filtro_modelo();




        }

        protected void btnQuitarImagen_Click(object sender, EventArgs e)
        {



        }

        protected void btnModificarImg_Click(object sender, EventArgs e)
        {



            try
            {
                if (UploaderAgregar.FileContent.Length == 0)
                {

                    lblMsjSql.Text = string.Empty;
                    lblMsjSql.Text = "Por favor seleccioné una imagen ";
                    string scriptExeption = "ShowPopupMsjSql();";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

                }
                else
                {


                    int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_MODELO"));
                    int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "ID_SISTEMA"));
                    string archivo = Server.MapPath(ConfigurationManager.AppSettings["RutaFotoSistema"] + "/Sistema_" + id_modelo + "_" + id_sistema);

                    if (File.Exists(archivo + ".jpg"))
                    {
                        System.IO.File.Delete(archivo + ".jpg");
                    }
                    if (File.Exists(archivo + ".png"))
                    {

                        System.IO.File.Delete(archivo + ".png");
                    }
                    if (File.Exists(archivo + ".bmp"))
                    {

                        System.IO.File.Delete(archivo + ".bmp");
                    }



                    GuardarImg();


                    ModificarSistema();


                }



                listar_filtro_modelo();
                imagenAgregar.ImageUrl = ConfigurationManager.AppSettings["RutaFotoSistema"] + "/" + gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "DES_IMAGEN");

            }
            catch
            {


            }

        }

        protected void btnanularArticulo_Click(object sender, EventArgs e)
        {

            if (gvDetail.Selection.Count == 0)
            {
                lblMsjSql.Text = string.Empty;
                lblMsjSql.Text = "Por favor marque check para anular ";
                string scripterrores = "ShowPopupMsjSql();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scripterrores, true);

            }
            else
            {

                string scriptExeption = "ShowPopupAnularArticulo()";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

            }



        }

        void anularArticulos()
        {


            try
            {


                List<object> selectedItem = gvDetail.GetSelectedFieldValues(new string[] { "COD_MATERIAL", "ID_SISTEMA", "ID_MODELO" });

                foreach (object[] item in selectedItem)
                {


                    string cod_material = item[0].ToString();
                    int id_sistema = Convert.ToInt32(item[1].ToString());
                    int id_modelo = Convert.ToInt32(item[2].ToString());
                    cls_carga_manual.AnularT_man_sistema_articulo(id_modelo, id_sistema, cod_material);




                }

                this.listarDetalle();



            }
            catch
            {


            }


        }



        protected void gvDetail_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e)
        {



            if (e.RowType != GridViewRowType.Data) return;
            int ind_estado = Convert.ToInt32(e.GetValue("IND_ESTADO"));
            if (ind_estado == 0)
                e.Row.BackColor = Color.LightPink;
        }

        protected void gvDetail_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
        {

        }

        protected void gvDetail_CustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventArgs e)
        {

        }

        protected void btnEliminarArticulo_Click(object sender, EventArgs e)
        {


            this.eliminar_T_Man_Sistema_Articulo();

        }

        protected void btnQuitar_Click(object sender, EventArgs e)
        {
            if (gvDetail.Selection.Count == 0)
            {
                lblMsjSql.Text = string.Empty;
                lblMsjSql.Text = "Por favor marque check para poder eliminar ";
                string scriptExeption = "ShowPopupMsjSql();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);

            }
            else
            {

                string scriptExeption = "ShowPopupEliminarArticulo();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptExeption, true);


            }
        }

        protected void btnAnularRegistro_Click(object sender, EventArgs e)
        {

            this.anularArticulos();


        }

  

        protected void btnPopupGrabar_Click(object sender, EventArgs e)
        {

            this.ActualizaT_Sistema_Articulo();
         
        }


    

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            this.ObtenerDatos();
        }

        protected void btnMostrarDetalleImp_Click(object sender, EventArgs e)
        {
            this.GrivMostrarDetalle();
        }

        private void ListaDetalle()
        {
            int intIndex = gvSistemaModelo.FocusedRowIndex;

            int id_sistema = Convert.ToInt32(gvSistemaModelo.GetRowValues(intIndex, "ID_SISTEMA"));
            int id_modelo = Convert.ToInt32(gvSistemaModelo.GetRowValues(intIndex, "ID_MODELO"));
            int intNroPag = Convert.ToInt32(gvSistemaModelo.GetRowValues(intIndex, "NRO_PAGINA"));
            gvDetail.DataSource = cls_carga_manual.listar_sistema_articulo(id_sistema, id_modelo,intNroPag);
            gvDetail.DataBind();
        }
        private void GrivMostrarDetalle() {
            int intIndex = gvSistemaModelo.FocusedRowIndex;
            if (intIndex == -1) {
                return;
            }
            gvDetail.Selection.UnselectAll();
            if (gvSistemaModelo.VisibleRowCount!= 0)
            {
                gvDetail.ClientVisible = true;
                btnAgregar2.ClientVisible = true;
                btnQuitar.ClientVisible = true;
                btnModificar.ClientVisible = true;
                btnanularArticulo.ClientVisible = true;
            }

            this.ListaDetalle();
            imagenAgregar.ImageUrl = ConfigurationManager.AppSettings["RutaFotoSistema"] + "/" + gvSistemaModelo.GetRowValues(gvSistemaModelo.FocusedRowIndex, "DES_IMAGEN");
            


        }

    }
}